package com.zhihuishu.micro.course.helper.data;

import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;


/**
 * 自定义键值对类，只接收一个Key、一个Value，类似于Map.Entry，且Key、Value为不可变对象
 * @author	zhanglikun
 * @date	2015年10月20日 下午3:50:31
 */
public class KVPair<K ,V> {
	
	private final K key ;
	private final V value ;
	
	public KVPair(K key ,V value) {
		this.key = key ;
		this.value = value ;
	}

	public K getKey() {
		return key;
	}

	public V getValue() {
		return value;
	}
	
	/**
	 * 将Map转换为KVPair集合类型
	 * @param data
	 * @return
	 */
	public static final <K ,V> Set<KVPair<K ,V>> mapToPairSet(Map<K ,V> data) {
		if(data == null || data.isEmpty()) return null ;
		Set<KVPair<K ,V>> set = new HashSet<KVPair<K,V>>() ;
		for(Entry<K ,V> entry : data.entrySet()) {
			set.add(new KVPair<K, V>(entry.getKey(), entry.getValue())) ;
		}
		return set ;
	}
	
}
